import { API } from '@/config/api.js'

/**
 * 获取会议基本信息
 * @returns {Promise} 返回会议基本信息
 */
export function getEventInfo() {
  return new Promise((resolve, reject) => {
    uni.request({
      url: API.EVENT.INFO,
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.code === 200) {
          resolve(res.data.data)
        } else {
          uni.showToast({
            title: res.data.msg || '获取会议信息失败',
            icon: 'none'
          })
          reject(res.data)
        }
      },
      fail: (err) => {
        uni.showToast({
          title: '网络请求失败',
          icon: 'none'
        })
        reject(err)
      }
    })
  })
}

/**
 * 获取活动日程
 * @returns {Promise} 返回活动日程信息
 */
export function getEventSchedule() {
  return new Promise((resolve, reject) => {
    uni.request({
      url: API.EVENT.SCHEDULE,
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.code === 200) {
          resolve(res.data.data)
        } else {
          uni.showToast({
            title: res.data.msg || '获取活动日程失败',
            icon: 'none'
          })
          reject(res.data)
        }
      },
      fail: (err) => {
        uni.showToast({
          title: '网络请求失败',
          icon: 'none'
        })
        reject(err)
      }
    })
  })
}

/**
 * 获取注意事项
 * @returns {Promise} 返回注意事项信息
 */
export function getEventNotices() {
  return new Promise((resolve, reject) => {
    uni.request({
      url: API.EVENT.NOTICES,
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.code === 200) {
          resolve(res.data.data)
        } else {
          uni.showToast({
            title: res.data.msg || '获取注意事项失败',
            icon: 'none'
          })
          reject(res.data)
        }
      },
      fail: (err) => {
        uni.showToast({
          title: '网络请求失败',
          icon: 'none'
        })
        reject(err)
      }
    })
  })
}

/**
 * 获取酒店住宿信息
 * @returns {Promise} 返回酒店住宿信息
 */
export function getEventHotel() {
  return new Promise((resolve, reject) => {
    uni.request({
      url: API.EVENT.HOTEL,
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.code === 200) {
          resolve(res.data.data)
        } else {
          uni.showToast({
            title: res.data.msg || '获取酒店信息失败',
            icon: 'none'
          })
          reject(res.data)
        }
      },
      fail: (err) => {
        uni.showToast({
          title: '网络请求失败',
          icon: 'none'
        })
        reject(err)
      }
    })
  })
}

/**
 * 获取交通服务信息
 * @returns {Promise} 返回交通服务信息
 */
export function getEventTransport() {
  return new Promise((resolve, reject) => {
    uni.request({
      url: API.EVENT.TRANSPORT,
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.code === 200) {
          resolve(res.data.data)
        } else {
          uni.showToast({
            title: res.data.msg || '获取交通信息失败',
            icon: 'none'
          })
          reject(res.data)
        }
      },
      fail: (err) => {
        uni.showToast({
          title: '网络请求失败',
          icon: 'none'
        })
        reject(err)
      }
    })
  })
}

/**
 * 获取出行指引
 * @returns {Promise} 返回出行指引信息
 */
export function getEventGuide() {
  return new Promise((resolve, reject) => {
    uni.request({
      url: API.EVENT.GUIDE,
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.code === 200) {
          resolve(res.data.data)
        } else {
          uni.showToast({
            title: res.data.msg || '获取出行指引失败',
            icon: 'none'
          })
          reject(res.data)
        }
      },
      fail: (err) => {
        uni.showToast({
          title: '网络请求失败',
          icon: 'none'
        })
        reject(err)
      }
    })
  })
}

/**
 * 获取用餐安排
 * @returns {Promise} 返回用餐安排信息
 */
export function getEventDining() {
  return new Promise((resolve, reject) => {
    uni.request({
      url: API.EVENT.DINING,
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.code === 200) {
          resolve(res.data.data)
        } else {
          uni.showToast({
            title: res.data.msg || '获取用餐安排失败',
            icon: 'none'
          })
          reject(res.data)
        }
      },
      fail: (err) => {
        uni.showToast({
          title: '网络请求失败',
          icon: 'none'
        })
        reject(err)
      }
    })
  })
} 